home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / gcc / gcc260_base.lha / gnu / os-include / inline / bullet.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-19  |  2.5 KB  |  98 lines

  1. #ifndef _INLINE_BULLET_H
  2. #define _INLINE_BULLET_H
  3.  
  4. #include <sys/cdefs.h>
  5. #include <inline/stubs.h>
  6.  
  7. __BEGIN_DECLS
  8.  
  9. #ifndef BASE_EXT_DECL
  10. #define BASE_EXT_DECL 
  11. #define BASE_EXT_DECL0 extern struct BulletBase*  BulletBase;
  12. #endif
  13. #ifndef BASE_PAR_DECL
  14. #define BASE_PAR_DECL
  15. #define BASE_PAR_DECL0 void
  16. #endif
  17. #ifndef BASE_NAME
  18. #define BASE_NAME BulletBase
  19. #endif
  20.  
  21. BASE_EXT_DECL0
  22.  
  23. static __inline void 
  24. CloseEngine (BASE_PAR_DECL struct GlyphEngine *glyphEngine)
  25. {
  26.   BASE_EXT_DECL
  27.   register struct BulletBase* a6 __asm("a6") = BASE_NAME;
  28.   register struct GlyphEngine *a0 __asm("a0") = glyphEngine;
  29.   __asm __volatile ("jsr a6@(-0x24)"
  30.   : /* no output */
  31.   : "r" (a6), "r" (a0)
  32.   : "a0","a1","d0","d1", "memory");
  33. }
  34. static __inline ULONG 
  35. ObtainInfoA (BASE_PAR_DECL struct GlyphEngine *glyphEngine,struct TagItem *tagList)
  36. {
  37.   BASE_EXT_DECL
  38.   register ULONG  _res  __asm("d0");
  39.   register struct BulletBase* a6 __asm("a6") = BASE_NAME;
  40.   register struct GlyphEngine *a0 __asm("a0") = glyphEngine;
  41.   register struct TagItem *a1 __asm("a1") = tagList;
  42.   __asm __volatile ("jsr a6@(-0x30)"
  43.   : "=r" (_res)
  44.   : "r" (a6), "r" (a0), "r" (a1)
  45.   : "a0","a1","d0","d1", "memory");
  46.   return _res;
  47. }
  48. static __inline struct GlyphEngine *
  49. OpenEngine (BASE_PAR_DECL0)
  50. {
  51.   BASE_EXT_DECL
  52.   register struct GlyphEngine * _res  __asm("d0");
  53.   register struct BulletBase* a6 __asm("a6") = BASE_NAME;
  54.   __asm __volatile ("jsr a6@(-0x1e)"
  55.   : "=r" (_res)
  56.   : "r" (a6)
  57.   : "a0","a1","d0","d1", "memory");
  58.   return _res;
  59. }
  60. static __inline ULONG 
  61. ReleaseInfoA (BASE_PAR_DECL struct GlyphEngine *glyphEngine,struct TagItem *tagList)
  62. {
  63.   BASE_EXT_DECL
  64.   register ULONG  _res  __asm("d0");
  65.   register struct BulletBase* a6 __asm("a6") = BASE_NAME;
  66.   register struct GlyphEngine *a0 __asm("a0") = glyphEngine;
  67.   register struct TagItem *a1 __asm("a1") = tagList;
  68.   __asm __volatile ("jsr a6@(-0x36)"
  69.   : "=r" (_res)
  70.   : "r" (a6), "r" (a0), "r" (a1)
  71.   : "a0","a1","d0","d1", "memory");
  72.   return _res;
  73. }
  74. static __inline ULONG 
  75. SetInfoA (BASE_PAR_DECL struct GlyphEngine *glyphEngine,struct TagItem *tagList)
  76. {
  77.   BASE_EXT_DECL
  78.   register ULONG  _res  __asm("d0");
  79.   register struct BulletBase* a6 __asm("a6") = BASE_NAME;
  80.   register struct GlyphEngine *a0 __asm("a0") = glyphEngine;
  81.   register struct TagItem *a1 __asm("a1") = tagList;
  82.   __asm __volatile ("jsr a6@(-0x2a)"
  83.   : "=r" (_res)
  84.   : "r" (a6), "r" (a0), "r" (a1)
  85.   : "a0","a1","d0","d1", "memory");
  86.   return _res;
  87. }
  88.  
  89. #undef BASE_EXT_DECL
  90. #undef BASE_EXT_DECL0
  91. #undef BASE_PAR_DECL
  92. #undef BASE_PAR_DECL0
  93. #undef BASE_NAME
  94.  
  95. __END_DECLS
  96.  
  97. #endif /* _INLINE_BULLET_H */
  98.